package de.grosjohann.android.feuerwehr.util;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.preference.PreferenceManager;

public final class PrefsUtil {

  public static final int MILLI_SEC_OF_MINUTE = 1000 * 60;

  public static String getString(Context ctx, int resId) {
    final String defaultValue = "";
    return getString(ctx, resId, defaultValue);
  }

  public static String getString(Context ctx, int keyResId, String defaultValue) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);

    String key = ctx.getString(keyResId);
    return prefs.getString(key, defaultValue);
  }

  public static String getString(Context ctx, int keyResId, int defaultResId) {
    String defaultValue = ctx.getString(defaultResId);
    return getString(ctx, keyResId, defaultValue);
  }

  public static void setString(Context ctx, int keyResId, String value) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
    Editor editor = prefs.edit();
    editor.putString(ctx.getString(keyResId), value);
    editor.commit();
  }

  public static boolean getBoolean(Context ctx, String key, boolean defaultValue) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);

    return prefs.getBoolean(key, defaultValue);
  }

  public static boolean getBoolean(Context ctx, int keyResId, boolean defaultValue) {

    String key = ctx.getString(keyResId);
    return getBoolean(ctx, key, defaultValue);
  }

  public static boolean getBoolean(Context ctx, int keyResId, int defaultResId) {
    String defaultValue = ctx.getString(defaultResId);
    return getBoolean(ctx, keyResId, Boolean.parseBoolean(defaultValue));
  }

  public static void setBoolean(Context ctx, int keyResId, boolean value) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
    Editor editor = prefs.edit();
    editor.putBoolean(ctx.getString(keyResId), value);
    editor.commit();
  }

  public static void setInt(Context ctx, int keyResId, int value) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
    Editor editor = prefs.edit();
    editor.putInt(ctx.getString(keyResId), value);
    editor.commit();
  }

  public static int getInt(Context ctx, int keyResId) {
    final int defaultValue = 0;
    return getInt(ctx, keyResId, defaultValue);
  }

  public static int getIntDefault(Context ctx, int keyResId, String defaultValue) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);

    String key = ctx.getString(keyResId);
    String value = prefs.getString(key, defaultValue);
    return Integer.parseInt(value);
  }

  public static int getInt(Context ctx, int keyResId, int defaultResId) {
    String defaultValue = ctx.getString(defaultResId);
    return getIntDefault(ctx, keyResId, defaultValue);
  }
}
